/*
 * Copyright (c) 2014 laidian. All Rights Reserved.
 * 
 * @author yaoyuming
 * 
 * @date 2020-04-10 13:56
 */
package com.yao.sys.mapper.sql;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yao.sys.entity.dto.MenuDto;

import cn.hutool.core.util.StrUtil;

/**
 * 菜单sql组装
 * 
 * @author yaoyuming
 * @date 2020/04/10 13:56
 */
public class MenuWrapper {

    /**
     * 功能描述 : 按照菜单名字
     * 
     * @param name
     * @author yaoyuming
     * @date 2020/4/14
     * @return {@link Wrapper< MenuDto>}
     */
    public static Wrapper<MenuDto> byName(String name) {
        LambdaQueryWrapper<MenuDto> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(StrUtil.isNotEmpty(name), MenuDto::getName, name);
        return wrapper;
    }

    /**
     * 功能描述 : 查询子菜单列表
     * 
     * @param parentId
     *            父菜单id
     * @author yaoyuming
     * @date 2020/4/10
     * @return {@link Wrapper< MenuDto>}
     */
    public static Wrapper<MenuDto> byParentId(Integer parentId) {
        LambdaQueryWrapper<MenuDto> query = Wrappers.lambdaQuery();

        query.eq(null != parentId, MenuDto::getParentId, parentId).orderByAsc(MenuDto::getSort);

        return query;
    }

    /**
     * 功能描述 : 分页查询条件
     * 
     * @param dto
     * @author yaoyuming
     * @date 2020/4/14
     * @return {@link Wrapper< MenuDto>}
     */
    public static Wrapper<MenuDto> withPage(MenuDto dto) {
        LambdaQueryWrapper<MenuDto> query = Wrappers.lambdaQuery();

        query.eq(null != dto.getType(), MenuDto::getType, dto.getType()).orderByAsc(MenuDto::getSort);
        return query;
    }

}